package com.suning.sawp.intf.bi;

import java.util.List;

import com.suning.sawp.dto.bi.CmmdtyAvgPriceDto;
import com.suning.sawp.dto.bi.CmmdtySaleDetailDto;
import com.suning.sawp.dto.bi.CmmdtySaleDetailsDto;
import com.suning.sawp.dto.bi.SaleCmmdtyDto;
import com.suning.sawp.dto.bi.TopBrandDto;

/**
 * 
 * 〈一句话功能简述〉单品数据处理<br>
 * 〈功能详细描述〉
 *
 * @author 17033093
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface BiCmmdtyService {

    /**
     * 
     * 功能描述: 日维度查询最高销售额的单品信息<br>
     * 〈功能详细描述〉
     *
     * @param storeCode 门店编码
     * @param cateCode 非必填。为空则查8大品类
     * @param day yyyyMMdd
     *
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    SaleCmmdtyDto queryTopSaleCmmdtyByDay(String storeCode, String cateCode, String day);

    /**
     * 
     * 功能描述: 月维度查询最高销售额的单品信息<br>
     * 〈功能详细描述〉
     *
     * @param storeCode 门店编码
     * @param cateCode 非必填。为空则查8大品类
     * @param month yyyyMM
     * 
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    SaleCmmdtyDto queryTopSaleCmmdtyByMonth(String storeCode, String cateCode, String month);

    /**
     * 
     * 功能描述: 日月维度查询品类下topN品牌列表<br>
     * 〈功能详细描述〉
     *
     * @param storeCode
     * @param cateCode
     * @param date YYYYMMDD、YYYYMM
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<TopBrandDto> queryTopNBrandList(String storeCode, String cateCode, String date);

    /**
     * 
     * 功能描述: 日月维度查询单品平均单价列表<br>
     * 〈功能详细描述〉
     *
     * @param storeCode
     * @param brandCode
     * @param date 日查询YYYY-MM-DD，月查询YYYY-MM
     * @param pageNo 默认1
     * @param pageSize 默认10
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    CmmdtyAvgPriceDto queryCmmdtyAvgPriceList(String storeCode, String brandCode, String date, Integer pageNo,
            Integer pageSize);

    /**
     * 
     * 功能描述: 查询单品信息列表<br>
     * 〈功能详细描述〉
     *
     * @param storeCode
     * @param cateCode
     * @param brandCode
     * @param cmmdtyCode
     * @param sortType
     * @param date 日查询YYYY-MM-DD，月查询YYYY-MM
     * @param pageNo
     * @param pageSize
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    CmmdtySaleDetailsDto queryCmmdtySaleList(String storeCode, String cateCode, String brandCode, String cmmdtyCode,
            String sortType, String date, Integer pageNo, Integer pageSize);

    /**
     * 
     * 功能描述: 查询单品详情<br>
     * 〈功能详细描述〉
     *
     * @param storeCode
     * @param cmmdtyCode
     * @param date
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    CmmdtySaleDetailDto queryCmmdtySaleDetail(String storeCode, String cmmdtyCode, String date);
}
